package com.fatmeraid.common.utils;

import com.fatmeraid.common.exception.FarmException;
import com.fatmeraid.common.minio.MinioProperties;
import com.fatmeraid.common.result.ResultCodeEnum;
import com.fatmeraid.vo.farmerApplication.AuditVo;
import io.minio.MinioClient;
import io.minio.RemoveObjectArgs;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class MinioUtil {

    @Autowired
    private MinioClient minioClient;

    @Autowired
    private MinioProperties minioProperties;
    /**
     * 删除文件
     * @param fileName 文件名称
     * @return 是否删除成功
     */
    public void deleteFile(String fileName)  {
        try {
            // 删除文件
            minioClient.removeObject(RemoveObjectArgs.builder()
                    .bucket(minioProperties.getBucketName())
                    .object(fileName)
                    .build());

        } catch (Exception e) {
            e.printStackTrace();
            throw new FarmException(ResultCodeEnum.SERVICE_ERROR);
        }
    }

    /**
     * 从URL中提取文件名（基于倒数第二个斜杠）
     * @param url 图片URL
     * @return 文件名
     */
    public String extractFileNameFromUrl(String url) {
        // 假设URL格式为: http://127.0.0.1:9005/rural-aid-farmer-bucket/xxx.jpg
        if (url == null || url.isEmpty()) {
            return null;
        }

        // 先找到最后一个斜杠的位置
        int lastSlashIndex = url.lastIndexOf('/');
        // 从最后一个斜杠的前一位开始，查找倒数第二个斜杠
        int secondLastSlashIndex = url.lastIndexOf('/', lastSlashIndex - 1);
        if (secondLastSlashIndex != -1 && secondLastSlashIndex < lastSlashIndex) {

            // 提取倒数第二个斜杠以后的内容
            return url.substring(secondLastSlashIndex + 1);
        }

        return null;
    }
}
